package com.yunkeji.system.service;

import com.yunkeji.common.core.domain.PageQuery;
import com.yunkeji.common.core.page.TableDataInfo;
import com.yunkeji.dao.vo.MonthStatisticsVo;
import com.yunkeji.dao.vo.PayDetailVo;
import com.yunkeji.dao.vo.StatisticsVo;
import com.yunkeji.dao.vo.broker.InviteInfoVo;
import com.yunkeji.system.domain.bo.*;

import java.util.Collection;
import java.util.List;

/**
 * 充值明细Service接口
 *
 * @author zhang
 * @date 2024-07-10
 */
public interface IPayDetailService {

    /** 查询充值明细 */
    PayDetailVo queryById(Long id);

    /** 查询充值明细列表 */
    TableDataInfo<PayDetailVo> queryPageList(PayDetailBo bo, PageQuery pageQuery);

    /** 查询充值明细列表 */
    List<PayDetailVo> queryList(PayDetailBo bo);

    /** 新增充值明细 */
    Boolean insertByBo(PayDetailBo bo);

    /** 修改充值明细 */
    Boolean updateByBo(PayDetailBo bo);

    /** 校验并批量删除充值明细信息 */
    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);

    /** 查询注册充值统计列表 */
    TableDataInfo<StatisticsVo> queryStatistics(StatisticsBo bo, PageQuery pageQuery);

    /** 查询推广注册充值统计列表 */
    TableDataInfo<StatisticsVo> queryInviteStatistics(StatisticsBo bo, PageQuery pageQuery);

    /** 查询月总充值统计列表 */
    TableDataInfo<MonthStatisticsVo> queryMonthStatistics(MonthStatisticsBo bo, PageQuery pageQuery);

    /** 查询推广注册充值统计列表 */
    TableDataInfo<InviteInfoVo> queryInviteInfo(InviteInfoBo bo, PageQuery pageQuery);

    void manualRecharge(ManualRechargeBo bo);
}
